1. Field of the Invention
The present invention relates generally to storage systems.
2. Description of Related Art
The amount of enterprise data is growing by more than 60% every year in some industries. Thus, storage administrators in these industries are frequently required to add storage capacity to their storage systems, which can be quite costly. Also, storage administrators are often required to reduce inefficient use of storage capacity in the systems that they manage due to budget restrictions. To help solve these problems a technology has emerged that is known as a “thin provisioning storage system”. Thin provisioning is a technology that enables storage space to be allocated to users, on a just-enough or just-in-time basis, rather than pre-allocating to users large storage spaces that may not ever be utilized. A thin provisioning storage system will typically present and make available to a user what is essentially a virtual volume that appears to have a very large size. However, the actual storage extent of the virtual volume is not yet allocated until the storage space is actually required by the user. When the user writes data to a certain area (e.g., issues a write command), then an actual storage extent is allocated from physical disks in the thin provisioning storage system. Thus, thin provisioning allows the efficiency of storage capacity utilization to be improved without heavy administrative overhead. When thin provisioning is incorporated, businesses are able to operate with less storage capacity, and defer frequent addition of storage capacity, while also reducing the operating costs associated with maintaining large amounts of unused disk capacity. US Pat. Appl. Pub. 2004/0162958, to Kano et al., entitled “Automated On-Line Capacity Expansion Method for Storage Device”, filed Feb. 23, 2004, the disclosure of which is incorporated herein by reference, discloses such a storage system that includes automated on-line capacity expansion capability.
In addition to the foregoing, the capacity of hard disk drives is increasing rapidly, but the performance of these drives (i.e., the speed of data writing and retrieval) is not keeping pace with the increases in capacity. For example, studies have shown that since 1991, disk drive capacity has been increasing by an average of 60% per year. However, the performance of the disk drives has been increasing by less than 10% per year. This trend of the disproportionate growth of disk capacity relative to the increase in disk performance is leading to a performance bottleneck at each disk because a single disk is able to hold huge amounts of data, while the disk interface does not have enough speed to process requests to read or write this data. Thus, when a disk holds a large amount of data, and one or more computers are trying to access the data on that disk, a decrease in response time can result as the disk interface attempts to read data from the disk or write data to the disk in response multiple access requests. As a result, in order to ensure a particular level of performance, each disk might intentionally be used in a low utilization mode, which is inefficient and results in high disk cost and low utilization.
A bottlenecking problem similar to that discussed above can occur on a thin provisioning storage system. Because a thin provisioning storage system encapsulates the physical structure of the device, allocated thin-provisioned storage extents might be repeatedly allocated from same disk (or a single disk group composing a RAID), and the user does not know of or cannot control this behavior. Therefore an automated solution is needed for allocating storage extents of a thin provisioning storage system so as not to conflict on a single disk or disk group, but instead to intelligently distribute allocation and utilization of allocated storage extents onto separate disks or disk groups.